<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>Superpixel Benchmark: Transformation Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Superpixel Benchmark
   </div>
   <div id="projectbrief">Superpixel benchmark, tools and algorithms.</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="classTransformation-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">Transformation Class Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Utility class for image and ground truth transofmrations.  
 <a href="classTransformation.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="transformation_8h_source.html">transformation.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:a960fca6389507a4dddd54fc51ecb2dbe"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTransformation.html#a960fca6389507a4dddd54fc51ecb2dbe">applyGaussianAdditiveNoise</a> (const cv::Mat &amp;image, float variance, cv::Mat &amp;noisy_image)</td></tr>
<tr class="memdesc:a960fca6389507a4dddd54fc51ecb2dbe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add Gaussian additive noise to image with the given variance on all channels.  <a href="#a960fca6389507a4dddd54fc51ecb2dbe">More...</a><br /></td></tr>
<tr class="separator:a960fca6389507a4dddd54fc51ecb2dbe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2f7e3614b6d159825bc39f33367a8c47"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTransformation.html#a2f7e3614b6d159825bc39f33367a8c47">applyGaussianSamplingErrors</a> (const cv::Mat &amp;image, float variance, cv::Mat &amp;noisy_image)</td></tr>
<tr class="memdesc:a2f7e3614b6d159825bc39f33367a8c47"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add Gaussian sampling errors with given variance.  <a href="#a2f7e3614b6d159825bc39f33367a8c47">More...</a><br /></td></tr>
<tr class="separator:a2f7e3614b6d159825bc39f33367a8c47"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1feaf4e4c77f3fc0786181bef5f31674"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTransformation.html#a1feaf4e4c77f3fc0786181bef5f31674">applySaltAndPepperNoise</a> (const cv::Mat &amp;image, float p, cv::Mat &amp;noisy_image)</td></tr>
<tr class="memdesc:a1feaf4e4c77f3fc0786181bef5f31674"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add salt and pepper noise.  <a href="#a1feaf4e4c77f3fc0786181bef5f31674">More...</a><br /></td></tr>
<tr class="separator:a1feaf4e4c77f3fc0786181bef5f31674"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac08f5ac7e3c9f3f050a8de33e6c463c6"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTransformation.html#ac08f5ac7e3c9f3f050a8de33e6c463c6">applyPoissonNoise</a> (const cv::Mat &amp;image, cv::Mat &amp;noisy_image)</td></tr>
<tr class="memdesc:ac08f5ac7e3c9f3f050a8de33e6c463c6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add poisson noise.  <a href="#ac08f5ac7e3c9f3f050a8de33e6c463c6">More...</a><br /></td></tr>
<tr class="separator:ac08f5ac7e3c9f3f050a8de33e6c463c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae21c758d35bd36db968aef32325bb877"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTransformation.html#ae21c758d35bd36db968aef32325bb877">applyBlur</a> (const cv::Mat &amp;image, int size, cv::Mat &amp;blurred_image)</td></tr>
<tr class="memdesc:ae21c758d35bd36db968aef32325bb877"><td class="mdescLeft">&#160;</td><td class="mdescRight">Apply blur (box filter).  <a href="#ae21c758d35bd36db968aef32325bb877">More...</a><br /></td></tr>
<tr class="separator:ae21c758d35bd36db968aef32325bb877"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a34ca4d06b735987696527bddf11e675d"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTransformation.html#a34ca4d06b735987696527bddf11e675d">applyGaussianBlur</a> (const cv::Mat &amp;image, int size, float sigma_x, float sigma_y, cv::Mat &amp;blurred_image)</td></tr>
<tr class="memdesc:a34ca4d06b735987696527bddf11e675d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Apply Gaussian blurring.  <a href="#a34ca4d06b735987696527bddf11e675d">More...</a><br /></td></tr>
<tr class="separator:a34ca4d06b735987696527bddf11e675d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a54b67208b52267e70c1c3a83122e2f79"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTransformation.html#a54b67208b52267e70c1c3a83122e2f79">applyMedianBlur</a> (const cv::Mat &amp;image, int size, cv::Mat &amp;blurred_image)</td></tr>
<tr class="memdesc:a54b67208b52267e70c1c3a83122e2f79"><td class="mdescLeft">&#160;</td><td class="mdescRight">Apply median filter.  <a href="#a54b67208b52267e70c1c3a83122e2f79">More...</a><br /></td></tr>
<tr class="separator:a54b67208b52267e70c1c3a83122e2f79"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2d4c1c435f84810901c2177d36fa11b7"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTransformation.html#a2d4c1c435f84810901c2177d36fa11b7">applyBilateralFilter</a> (const cv::Mat &amp;image, int size, float sigma_color, float sigma_space, cv::Mat &amp;filtered_image)</td></tr>
<tr class="memdesc:a2d4c1c435f84810901c2177d36fa11b7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Apply bilateral filter.  <a href="#a2d4c1c435f84810901c2177d36fa11b7">More...</a><br /></td></tr>
<tr class="separator:a2d4c1c435f84810901c2177d36fa11b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3cf1af7736867a7e9f056dec13f1ac56"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTransformation.html#a3cf1af7736867a7e9f056dec13f1ac56">applyMotionBlur</a> (const cv::Mat &amp;image, int size, float angle, cv::Mat &amp;blurred_image)</td></tr>
<tr class="memdesc:a3cf1af7736867a7e9f056dec13f1ac56"><td class="mdescLeft">&#160;</td><td class="mdescRight">Apply motion blur.  <a href="#a3cf1af7736867a7e9f056dec13f1ac56">More...</a><br /></td></tr>
<tr class="separator:a3cf1af7736867a7e9f056dec13f1ac56"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a850d04c10ed94bb8d7c82e3fe41e22f1"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:a850d04c10ed94bb8d7c82e3fe41e22f1"><td class="memTemplItemLeft" align="right" valign="top">static void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classTransformation.html#a850d04c10ed94bb8d7c82e3fe41e22f1">applyVerticalShear</a> (const cv::Mat &amp;image, int crop, float shear, cv::Mat &amp;sheared_image)</td></tr>
<tr class="memdesc:a850d04c10ed94bb8d7c82e3fe41e22f1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Apply vertical shear.  <a href="#a850d04c10ed94bb8d7c82e3fe41e22f1">More...</a><br /></td></tr>
<tr class="separator:a850d04c10ed94bb8d7c82e3fe41e22f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa313a9c5b15baafeabc62c9091d84d89"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:aa313a9c5b15baafeabc62c9091d84d89"><td class="memTemplItemLeft" align="right" valign="top">static void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classTransformation.html#aa313a9c5b15baafeabc62c9091d84d89">applyHorizontalShear</a> (const cv::Mat &amp;image, int crop, float shear, cv::Mat &amp;sheared_image)</td></tr>
<tr class="memdesc:aa313a9c5b15baafeabc62c9091d84d89"><td class="mdescLeft">&#160;</td><td class="mdescRight">Apply horizontal shear.  <a href="#aa313a9c5b15baafeabc62c9091d84d89">More...</a><br /></td></tr>
<tr class="separator:aa313a9c5b15baafeabc62c9091d84d89"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aee52c484fe1ec194a97f7ce82ba0508f"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:aee52c484fe1ec194a97f7ce82ba0508f"><td class="memTemplItemLeft" align="right" valign="top">static void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classTransformation.html#aee52c484fe1ec194a97f7ce82ba0508f">applyRotation</a> (const cv::Mat &amp;image, int crop, float angle, cv::Mat &amp;rotated_image, int interpolation=cv::INTER_LINEAR)</td></tr>
<tr class="memdesc:aee52c484fe1ec194a97f7ce82ba0508f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Apply rotation.  <a href="#aee52c484fe1ec194a97f7ce82ba0508f">More...</a><br /></td></tr>
<tr class="separator:aee52c484fe1ec194a97f7ce82ba0508f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae51215c44b8a132a2da0eee215691c99"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:ae51215c44b8a132a2da0eee215691c99"><td class="memTemplItemLeft" align="right" valign="top">static void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classTransformation.html#ae51215c44b8a132a2da0eee215691c99">applyTranslation</a> (const cv::Mat &amp;image, int crop, int translation_x, int translation_y, cv::Mat &amp;translated_image)</td></tr>
<tr class="memdesc:ae51215c44b8a132a2da0eee215691c99"><td class="mdescLeft">&#160;</td><td class="mdescRight">Apply translation.  <a href="#ae51215c44b8a132a2da0eee215691c99">More...</a><br /></td></tr>
<tr class="separator:ae51215c44b8a132a2da0eee215691c99"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Utility class for image and ground truth transofmrations. </p>
<p>Copyright (c) 2016, David Stutz Contact: <a href="#" onclick="location.href='mai'+'lto:'+'dav'+'id'+'.st'+'ut'+'z@r'+'wt'+'h-a'+'ac'+'hen'+'.d'+'e'; return false;">david<span style="display: none;">.nosp@m.</span>.stu<span style="display: none;">.nosp@m.</span>tz@rw<span style="display: none;">.nosp@m.</span>th-a<span style="display: none;">.nosp@m.</span>achen<span style="display: none;">.nosp@m.</span>.de</a>, davidstutz.de All rights reserved.</p>
<p>Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:</p>
<ol type="1">
<li>Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.</li>
<li>Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.</li>
<li>Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.</li>
</ol>
<p>THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</p><dl class="section author"><dt>Author</dt><dd>David Stutz </dd></dl>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a2d4c1c435f84810901c2177d36fa11b7"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void Transformation::applyBilateralFilter </td>
          <td>(</td>
          <td class="paramtype">const cv::Mat &amp;&#160;</td>
          <td class="paramname"><em>image</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>sigma_color</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>sigma_space</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">cv::Mat &amp;&#160;</td>
          <td class="paramname"><em>filtered_image</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Apply bilateral filter. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">image</td><td>image to apply bilateral filter to </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>filter size </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">sigma_color</td><td>Gaussian variance for color </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">sigma_space</td><td>Gaussian variance for space </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">filtered_image</td><td>filtered image </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ae21c758d35bd36db968aef32325bb877"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void Transformation::applyBlur </td>
          <td>(</td>
          <td class="paramtype">const cv::Mat &amp;&#160;</td>
          <td class="paramname"><em>image</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">cv::Mat &amp;&#160;</td>
          <td class="paramname"><em>blurred_image</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Apply blur (box filter). </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">image</td><td>image to apply blur filter to </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>size of filter </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">blurred_image</td><td>blrured image </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a960fca6389507a4dddd54fc51ecb2dbe"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void Transformation::applyGaussianAdditiveNoise </td>
          <td>(</td>
          <td class="paramtype">const cv::Mat &amp;&#160;</td>
          <td class="paramname"><em>image</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>variance</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">cv::Mat &amp;&#160;</td>
          <td class="paramname"><em>noisy_image</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Add Gaussian additive noise to image with the given variance on all channels. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">image</td><td>image to add Gaussian additive noise to </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">variance</td><td>variance of the Gaussian </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">noisy_image</td><td>noisy image</td></tr>
  </table>
  </dd>
</dl>
<p>Copyright (c) 2016, David Stutz Contact: <a href="#" onclick="location.href='mai'+'lto:'+'dav'+'id'+'.st'+'ut'+'z@r'+'wt'+'h-a'+'ac'+'hen'+'.d'+'e'; return false;">david<span style="display: none;">.nosp@m.</span>.stu<span style="display: none;">.nosp@m.</span>tz@rw<span style="display: none;">.nosp@m.</span>th-a<span style="display: none;">.nosp@m.</span>achen<span style="display: none;">.nosp@m.</span>.de</a>, davidstutz.de All rights reserved.</p>
<p>Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:</p>
<ol type="1">
<li>Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.</li>
<li>Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.</li>
<li>Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.</li>
</ol>
<p>THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. </p>

</div>
</div>
<a class="anchor" id="a34ca4d06b735987696527bddf11e675d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void Transformation::applyGaussianBlur </td>
          <td>(</td>
          <td class="paramtype">const cv::Mat &amp;&#160;</td>
          <td class="paramname"><em>image</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>sigma_x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>sigma_y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">cv::Mat &amp;&#160;</td>
          <td class="paramname"><em>blurred_image</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Apply Gaussian blurring. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">image</td><td>image to apply Gaussian blur to </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>size of filter </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">sigma_x</td><td>variance in x direction </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">sigma_y</td><td>variance in y direction </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">blurred_image</td><td>blurred image </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a2f7e3614b6d159825bc39f33367a8c47"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void Transformation::applyGaussianSamplingErrors </td>
          <td>(</td>
          <td class="paramtype">const cv::Mat &amp;&#160;</td>
          <td class="paramname"><em>image</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>variance</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">cv::Mat &amp;&#160;</td>
          <td class="paramname"><em>noisy_image</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Add Gaussian sampling errors with given variance. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">image</td><td>image to add Gaussian sampling errors to </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">variance</td><td>variance of the Gaussian </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">noisy_image</td><td></td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="aa313a9c5b15baafeabc62c9091d84d89"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">template void Transformation::applyHorizontalShear&lt; int &gt; </td>
          <td>(</td>
          <td class="paramtype">const cv::Mat &amp;&#160;</td>
          <td class="paramname"><em>image</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>crop</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>shear</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">cv::Mat &amp;&#160;</td>
          <td class="paramname"><em>sheared_image</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Apply horizontal shear. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">image</td><td>image to apply shear to </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">crop</td><td>crop image before shearing </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">shear</td><td>shear parameter </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">sheared_image</td><td>sheared image </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a54b67208b52267e70c1c3a83122e2f79"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void Transformation::applyMedianBlur </td>
          <td>(</td>
          <td class="paramtype">const cv::Mat &amp;&#160;</td>
          <td class="paramname"><em>image</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">cv::Mat &amp;&#160;</td>
          <td class="paramname"><em>blurred_image</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Apply median filter. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">image</td><td>image to apply median filter to </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>size of filter </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">blurred_image</td><td>blurred image </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a3cf1af7736867a7e9f056dec13f1ac56"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void Transformation::applyMotionBlur </td>
          <td>(</td>
          <td class="paramtype">const cv::Mat &amp;&#160;</td>
          <td class="paramname"><em>image</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>angle</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">cv::Mat &amp;&#160;</td>
          <td class="paramname"><em>blurred_image</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Apply motion blur. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">image</td><td>image to apply motion blur to </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>size of filter </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">angle</td><td>angle of motion blur </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">blrured_image</td><td>blurred image </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ac08f5ac7e3c9f3f050a8de33e6c463c6"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void Transformation::applyPoissonNoise </td>
          <td>(</td>
          <td class="paramtype">const cv::Mat &amp;&#160;</td>
          <td class="paramname"><em>image</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">cv::Mat &amp;&#160;</td>
          <td class="paramname"><em>noisy_image</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Add poisson noise. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">image</td><td>image to add Poisson noise to </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">noisy_image</td><td>noisy image </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="aee52c484fe1ec194a97f7ce82ba0508f"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">template void Transformation::applyRotation&lt; float &gt; </td>
          <td>(</td>
          <td class="paramtype">const cv::Mat &amp;&#160;</td>
          <td class="paramname"><em>image</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>crop</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>angle</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">cv::Mat &amp;&#160;</td>
          <td class="paramname"><em>rotated_image</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>interpolation</em> = <code>cv::INTER_LINEAR</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Apply rotation. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">image</td><td>image ot apply rotation to </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">crop</td><td>crop the image before rotating </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">angle</td><td>angle of rotation </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">rotated_image</td><td>rotated image </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a1feaf4e4c77f3fc0786181bef5f31674"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void Transformation::applySaltAndPepperNoise </td>
          <td>(</td>
          <td class="paramtype">const cv::Mat &amp;&#160;</td>
          <td class="paramname"><em>image</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>p</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">cv::Mat &amp;&#160;</td>
          <td class="paramname"><em>noisy_image</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Add salt and pepper noise. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">image</td><td>image to add salt and pepper noise to </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">p</td><td>probability of salt or pepper </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">noisy_image</td><td>noisy image </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ae51215c44b8a132a2da0eee215691c99"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">template void Transformation::applyTranslation&lt; int &gt; </td>
          <td>(</td>
          <td class="paramtype">const cv::Mat &amp;&#160;</td>
          <td class="paramname"><em>image</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>crop</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>translation_x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>translation_y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">cv::Mat &amp;&#160;</td>
          <td class="paramname"><em>translated_image</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Apply translation. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">image</td><td>image to translate </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">crop</td><td>crop image before translating </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">translation_x</td><td>translation in x direction </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">translation_y</td><td>translation in y direction </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">translated_image</td><td>translated image </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a850d04c10ed94bb8d7c82e3fe41e22f1"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">template void Transformation::applyVerticalShear&lt; int &gt; </td>
          <td>(</td>
          <td class="paramtype">const cv::Mat &amp;&#160;</td>
          <td class="paramname"><em>image</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>crop</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>shear</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">cv::Mat &amp;&#160;</td>
          <td class="paramname"><em>sheared_image</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Apply vertical shear. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">image</td><td>image to apply shear to </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">crop</td><td>crop image before shearing </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">shear</td><td>shear parameter </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">sheared_image</td><td>sheared image </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>lib_eval/<a class="el" href="transformation_8h_source.html">transformation.h</a></li>
<li>lib_eval/<a class="el" href="transformation_8cpp.html">transformation.cpp</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Sun Apr 16 2017 16:39:17 for Superpixel Benchmark by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
</html>
